<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css">
<meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type">
<link rel="Start" href="index.html">
<link rel="Up" href="index.html">
<link title="Index of types" rel=Appendix href="index_types.html">
<link title="Index of values" rel=Appendix href="index_values.html">
<link title="Index of class attributes" rel=Appendix href="index_attributes.html">
<link title="Index of class methods" rel=Appendix href="index_methods.html">
<link title="Index of classes" rel=Appendix href="index_classes.html">
<link title="Index of modules" rel=Appendix href="index_modules.html">
<link title="Definition" rel="Chapter" href="Definition.html"><title>Definition</title>
</head>
<body>
<div class="navbar">&nbsp;<a href="index.html">Up</a>
&nbsp;</div>
<center><h1>Module <a href="type_Definition.html">Definition</a></h1></center>
<br>
<pre><span class="keyword">module</span> Definition: <code class="code">sig</code> <a href="Definition.html">..</a> <code class="code">end</code></pre>Contient toutes les fonctions qui peuvent être appelées par tout le monde, joueurs y compris
On trouve notament les fonctions d'affichages, de tests standards, de personnalités et les fonctions de vote.
Le type joueur est défini ici, tous les joueurs doivent hériter de cette classe pour pouvoir jouer et être gérés par le conteur<br>
<hr width="100%">
<pre><span class="keyword">val</span> <a name="VALverbose"></a><a href="code_VALDefinition.verbose.html">verbose</a> : <code class="type">int Pervasives.ref</code></pre><div class="info">
Quantité d'éléments affichés par le programme
<OL>
</OL>
<ul>
<li>0 correspond à un affichage total et n'est recommandé que pour la recherche d'erreur.</li>
<li>1 correspond à l'affichage de tous les affichages proposés par l'arbitre.</li>
<li>2 correspond à une utilisation standard pour observer une partie et ses dessous.</li>
<li>3 correspond à un affichage selon un point de vue d'un joueur standard.</li>
<li>4 correspond à un affichage minimal pour vérifier qu'une partie se déroule bien (avec avertissements)</li>
<li>5 n'affiche rien sauf messages d'erreurs. (sans avertissements)</li>
</ul>

Cette liste est à jour dans la page du wiki UsingExecutable<br>
</div>
<pre><span class="keyword">val</span> <a name="VALseed"></a><a href="code_VALDefinition.seed.html">seed</a> : <code class="type">int</code></pre><div class="info">
Initialisation de l'aléatoire<br>
</div>
<br>
Fonctions d'affichage<br>
<pre><span class="keyword">val</span> <a name="VALv_print_string"></a><a href="code_VALDefinition.v_print_string.html">v_print_string</a> : <code class="type">int -> string -> unit</code></pre><div class="info">
Affichage d'une chaîne standard<br>
</div>
<pre><span class="keyword">val</span> <a name="VALv_print"></a><a href="code_VALDefinition.v_print.html">v_print</a> : <code class="type">int -> ('a, Pervasives.out_channel, unit) Pervasives.format -> 'a</code></pre><div class="info">
Affichage des chaînes acceptant la syntaxe des Printf.printf c'est à dire avec paramètres<br>
</div>
<br>
Affichage d'une chaîne dans un beau cadre<br>
<pre><span class="keyword">val</span> <a name="VALprint_int_array"></a><a href="code_VALDefinition.print_int_array.html">print_int_array</a> : <code class="type">int -> int array -> unit</code></pre><div class="info">
Affichage d'un tableau d'entier, puis passage à la ligne<br>
</div>
<pre><span class="keyword">val</span> <a name="VALprint_bool_array"></a><a href="code_VALDefinition.print_bool_array.html">print_bool_array</a> : <code class="type">int -> bool array -> unit</code></pre><div class="info">
Affichage d'un tableau de booléens _unused_<br>
</div>
<br>
Autres fonctions inutiles<br>
<pre><span class="keyword">val</span> <a name="VALarray_exists"></a><a href="code_VALDefinition.array_exists.html">array_exists</a> : <code class="type">('a -> bool) -> 'a array -> bool</code></pre><div class="info">
Teste s'il existe un élément du tableau vérifiant un prédicat<br>
</div>
<pre><span class="keyword">val</span> <a name="VALarray_all"></a><a href="code_VALDefinition.array_all.html">array_all</a> : <code class="type">('a -> bool) -> 'a array -> bool</code></pre><div class="info">
Teste si tout les éléments d'un tableau vérifient un prédicat<br>
</div>
<pre><span class="keyword">val</span> <a name="VALarray_exists_2"></a><a href="code_VALDefinition.array_exists_2.html">array_exists_2</a> : <code class="type">(int -> bool) -> 'a array -> bool</code></pre><div class="info">
Teste s'il existe un élément du tableau vérifiant un prédicat<br>
</div>
<pre><span class="keyword">val</span> <a name="VALarray_all_2"></a><a href="code_VALDefinition.array_all_2.html">array_all_2</a> : <code class="type">(int -> bool) -> 'a array -> bool</code></pre><div class="info">
Teste si tout les éléments d'un tableau vérifient un prédicat<br>
</div>
<br>
----------------------------------------------------------------<br>
<br>
Début des définitions<br>
<br><code><span class="keyword">type</span> <a name="TYPEperso"></a><code class="type"></code>perso = </code><table class="typetable">
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">Unknown</span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">Loup</span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">Villageois</span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">Voyante</span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">Sorciere</span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">Mort</span> <span class="keyword">of</span> <code class="type"><a href="Definition.html#TYPEperso">perso</a></code></code></td>

</tr></table>

<div class="info">
Définition du type des personnalités des joueurs<br>
</div>

<pre><span class="keyword">type</span> <a name="TYPEinformation"></a><code class="type"></code>information = <code class="type">int * int array</code> </pre>
<div class="info">
Définition de la structure d'une information échangée de la forme id_information * information<br>
</div>

<br>
Conversion d'un type en la personnalité correspondante et réciproquement<br>
<pre><span class="keyword">val</span> <a name="VALint2perso"></a><a href="code_VALDefinition.int2perso.html">int2perso</a> : <code class="type">int -> <a href="Definition.html#TYPEperso">perso</a></code></pre><div class="info">
</div>
<pre><span class="keyword">val</span> <a name="VALperso2int"></a><a href="code_VALDefinition.perso2int.html">perso2int</a> : <code class="type"><a href="Definition.html#TYPEperso">perso</a> -> int</code></pre><pre><span class="keyword">val</span> <a name="VALperso2string"></a><a href="code_VALDefinition.perso2string.html">perso2string</a> : <code class="type"><a href="Definition.html#TYPEperso">perso</a> -> string</code></pre><div class="info">
Conversion d'une personnalité en la chaîne associée<br>
</div>
<pre><span class="keyword">val</span> <a name="VALstring2perso"></a><a href="code_VALDefinition.string2perso.html">string2perso</a> : <code class="type">string -> <a href="Definition.html#TYPEperso">perso</a></code></pre><pre><span class="keyword">val</span> <a name="VALprint_perso_array"></a><a href="code_VALDefinition.print_perso_array.html">print_perso_array</a> : <code class="type"><a href="Definition.html#TYPEperso">perso</a> array -> unit</code></pre><div class="info">
Affichage d'un tableau de personnalités<br>
</div>
<pre><span class="keyword">val</span> <a name="VALperso_is_dead"></a><a href="code_VALDefinition.perso_is_dead.html">perso_is_dead</a> : <code class="type"><a href="Definition.html#TYPEperso">perso</a> -> bool</code></pre><div class="info">
Teste si une personnalité est morte ou non<br>
</div>
<br>
Classe des joueurs: dans chaque module, le joueur définit sa sous classe avec sa manière propre de répondre aux questions et d'assimiler les informations 
ici sont définies les éléments essentiels utilisés par le conteur<br>
<pre><span class="keyword">class</span> <a name="TYPEjoueur"></a><span class="keyword">virtual</span> <a href="Definition.joueur.html">joueur</a> : <code class="type">int -> int -> </code><code class="code">object</code> <a href="Definition.joueur.html">..</a> <code class="code">end</code></pre><br>
Définition des fonctions qui ne sont utiles qu'au conteur<br>
<pre><span class="keyword">val</span> <a name="VALcarte_LG"></a><a href="code_VALDefinition.carte_LG.html">carte_LG</a> : <code class="type">int -> int -> bool</code></pre><div class="info">
Donne la répartition des LG dans lors de la distribution des rôles<br>
</div>
<pre><span class="keyword">val</span> <a name="VALgenerer_ordre_aleatoire"></a><a href="code_VALDefinition.generer_ordre_aleatoire.html">generer_ordre_aleatoire</a> : <code class="type">int -> int array</code></pre><div class="info">
Renvoie un tableau pour un ordre aléatoire des joueurs afin de pouvoir leur donner une personnalité au hasard<br>
</div>
<pre><span class="keyword">val</span> <a name="VALrepartition"></a><a href="code_VALDefinition.repartition.html">repartition</a> : <code class="type">int -> <a href="Definition.html#TYPEperso">perso</a> array</code></pre><div class="info">
Attribue aléatoirement une personnalité à chacun des joueurs<br>
</div>
<pre><span class="keyword">val</span> <a name="VALvote_majorite"></a><a href="code_VALDefinition.vote_majorite.html">vote_majorite</a> : <code class="type">int array -> int * bool</code></pre><div class="info">
Détermine si le vote se conclue par une majorité absolue et de toute façon le joueur plébiscité<br>
</div>
<pre><span class="keyword">val</span> <a name="VALcommunication_du_vote"></a><a href="code_VALDefinition.communication_du_vote.html">communication_du_vote</a> : <code class="type">(int -> bool) -> int -> < donne_info : 'a -> unit; .. > array -> 'a -> unit</code></pre><div class="info">
Transmet aux votants les résultats du vote<br>
</div>
<pre><span class="keyword">val</span> <a name="VALappel_au_vote"></a><a href="code_VALDefinition.appel_au_vote.html">appel_au_vote</a> : <code class="type">(int -> bool) -><br>       (<a href="Definition.html#TYPEinformation">information</a> -> bool) -><br>       int -><br>       < donne_info : int * int array -> unit;<br>         pose_question : 'a * int array -> <a href="Definition.html#TYPEinformation">information</a>; .. ><br>       array -> 'a -> int -> int -> int * int</code></pre><div class="info">
Fonction gèrant l'intégralité d'un vote<br>
</div>
</body></html>